#include "../Util/Util.h"

#ifndef _DATABASE_OPENCLENV_H
#define _DATABASE_OPENCLENV_H 

class OpenclEnv
{
public:
	cl_platform_id platform_id; // platform id
	cl_device_id devices[16]; // compute device id
    cl_uint num_devices;	//device number
	cl_context *contexts; // compute context
	cl_command_queue *commands; // compute command queues
	cl_program* program;
	cl_kernel* kernel;
	int* arg_index;
	unsigned inbuffer_size = 128 * 1024 * 1024; //128MB
	unsigned* outbuffer_size;
	//unsigned outbuffer_size1 = 512 * 1024; //512KB
	//unsigned outbuffer_size2 = 512 * 1024; //512KB
	cl_mem **offset_in;
	cl_mem **adjacency_in;
	cl_mem* buffer1_in;
	cl_mem* buffer2_in;
	cl_mem* buffer3_in;
	cl_mem* buffer_out;
	//cl_mem buffer_out1;
	//cl_mem buffer_out2;
	OpenclEnv();
	~OpenclEnv();
};

#endif //_DATABASE_OPENCLENV_H

